<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page import="com.esurvey.core.*" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.sql.Date" %>
<HTML>
<HEAD>
	<TITLE>Bienvenido a eSurvey!</TITLE>
	<LINK href="styles/general.css" type="text/css" rel="stylesheet">
	<SCRIPT src="jquery/jquery.js" type="text/javascript"></SCRIPT>
	<SCRIPT src="js/global.js" type="text/javascript"></SCRIPT>
	<STYLE>
		div#main {
			 padding-top: 15px;
			 padding-left: 75px;
		}
	</STYLE>
</HEAD>
<%
if ((session.getAttribute("visitor") != null) && (session.getAttribute("listIdAnswers") != null) && (session.getAttribute("surveyResponsed") != null)) {
	try {
		//cargamos toda la información del visitante que ha respondido la encuesta
		String visitor = session.getAttribute("visitor").toString();
		Visitor v = eSurveyPersistence.loadVisitor(visitor);

		//obtenemos cada uno de los identificadores de las respuestas que tiene la encuesta respondida
		int[] listIdAnswers = (int [])session.getAttribute("listIdAnswers");

		//obtenemos el identificador de la encuesta respondida
		int idSurvey = Integer.parseInt(session.getAttribute("surveyResponsed").toString());

		//Si la encuesta es anónima, asignamos el valor '1' como identificaor (el identificador del visitante
		//anónimo) al valor del visitante que ha respondido la encuesta para que no haya una relación entre
		//el usuario que ha respondido la encuesta y su respuesta. Si no es anónima, asignamos el id del visitante
		int idVisitante = v.getId();
		if ((eSurveyPersistence.loadSurvey(idSurvey)).isAnonymous()) {
			idVisitante = 1;
		}

		//obtenemos y almacenamos el total de respuestas indicadas para cada una de las preguntas
		ArrayList<Result> answers = new ArrayList<Result>();
		for (int i=0 ; i<listIdAnswers.length ; i++) {
			//comprobamos si la pregunta actual ha sido seleccionada o respondida
			String answer = request.getParameter("answer"+listIdAnswers[i]);
			if (answer != null) {
				Result r = new Result(idVisitante, listIdAnswers[i], answer);
				answers.add(r);
			}
		}

		if (answers.size() > 0) {
			//obtenemos la fecha de hoy, para así almacenar el día de respuesta de la encuesta
			java.util.Calendar fechaActual = new java.util.GregorianCalendar();
			long fechaActualMilisegundos = fechaActual.getTimeInMillis();
			Date dateAnswered = new Date(fechaActualMilisegundos);
			//marcamos que el usuario ya ha respondido a la encuesta (para que no pueda volver a hacerlo)
			eSurveyPersistence.surveyIsAnswered(v.getId(), idSurvey, dateAnswered);

			//almacenamos todos los resultados generados
			for (Result r: answers) {
				eSurveyPersistence.createResult(r);
			}
%>
<BODY>
		<DIV id="general">
			<DIV id="header">
				<%@ include file="header.jsp" %>
			</DIV>
			<DIV id="content">
				<DIV id="main">
					<H1>Felicidades! La encuesta ha sido respondida satisfactoriamente</H1>
					<P>
					Puede volver al men&uacute; principal pulsando <a href="visitorViewSurveys.jsp">aqu&iacute;</a>.
					</P>
				</DIV>
				<DIV id="nav">
					<%@ include file="visitorTabs.html" %>
				</DIV>
			</DIV>
			<DIV id="footer">
				<%@ include file="footer.jsp" %>
			</DIV>
		</DIV>
</BODY>
<%
		} else {
			response.sendRedirect("visitorViewSurvey.jsp?idSurvey="+idSurvey);
		}
	} catch (Exception e) {
		response.sendRedirect("error.jsp?exception="+e);
	}
} else {
	response.sendRedirect("loginCert.jsp");
}
%>
</HTML>
